// pages/recommendSongs/recommendSongs.js
import request from '../../utils/request';
import PubSub from 'pubsub-js';

Page({
  data: {
    cookie: false, // 初始状态为未登录
    songs: [], // 歌曲列表
    currentIndex: -1, // 当前播放的歌曲索引
  },

  onLoad() {
    this.checkLoginStatus(); // 检查登录状态

    // 订阅 switchType 事件
    PubSub.subscribe('switchType', (msg, type) => {
      this.handleSwitchSong(type); // 处理歌曲切换
    });
  },

  // 检查登录状态
  checkLoginStatus() {
    const cookie = wx.getStorageSync('cookie'); // 从缓存中获取 cookie
    if (cookie) {
      this.setData({ cookie: true }); // 已登录
      this.getRecommendSongs(); // 获取推荐歌曲
    } else {
      this.setData({ cookie: false }); // 未登录
    }
  },

  // 获取推荐歌曲
  async getRecommendSongs() {
    try {
      const res = await request('/recommend/songs');
      if (res.code === 200) {
        this.setData({
          songs: res.data.dailySongs,
        });
      }
    } catch (error) {
      console.error('获取推荐歌曲失败:', error);
    }
  },

  // 跳转到登录页面
  goLogin() {
    wx.navigateTo({
      url: '/pages/Login/Login',
    });
  },

  // 播放全部歌曲（新增方法）
  playAllSongs() {
    if (this.data.songs.length === 0) return; // 无歌曲时不执行

    const firstSongId = this.data.songs[0].id; // 获取第一首歌曲 ID
    this.setData({ currentIndex: 0 }); // 设置当前索引为 0

    // 跳转到歌曲页面，传递第一首歌曲的 ID、索引和歌曲列表
    wx.navigateTo({
      url: `/pages/Song/Song?ids=${firstSongId}&index=0&songList=${JSON.stringify(this.data.songs)}`,
    });
  },

  // 跳转到歌曲详情页
  goToSongDetail(event) {
    const index = event.currentTarget.dataset.index; // 获取当前歌曲的索引
    const songId = this.data.songs[index].id; // 获取当前歌曲的 ID
    this.setData({ currentIndex: index }); // 更新当前索引

    // 跳转到歌曲详情页，并传递当前索引和歌曲列表
    wx.navigateTo({
      url: `/pages/Song/Song?ids=${songId}&index=${index}&songList=${JSON.stringify(this.data.songs)}`,
    });
  },

  // 跳转到评论页
  goToComment(event) {
    const songId = event.currentTarget.dataset.id; // 获取歌曲 ID
    wx.navigateTo({
      url: `/pages/Comment/Comment?type=0&id=${songId}`, // 跳转到评论页
    });
  },

  // 处理歌曲切换
  handleSwitchSong(type) {
    const { songs, currentIndex } = this.data;
    let newIndex = currentIndex;

    if (type === 'prev') {
      newIndex = currentIndex === 0 ? songs.length - 1 : currentIndex - 1; // 上一首
    } else if (type === 'next') {
      newIndex = currentIndex === songs.length - 1 ? 0 : currentIndex + 1; // 下一首
    }

    this.setData({ currentIndex: newIndex }); // 更新当前索引
    const nextSongId = songs[newIndex].id; // 获取下一首歌曲 ID

    // 跳转到新歌曲页面
    wx.navigateTo({
      url: `/pages/Song/Song?ids=${nextSongId}&index=${newIndex}&songList=${JSON.stringify(songs)}`,
    });
  },
});